home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / um / include / shared / mconsole.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.4 KB  |  99 lines

  1. /*
  2.  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
  3.  * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
  4.  * Licensed under the GPL
  5.  */
  6.  
  7. #ifndef __MCONSOLE_H__
  8. #define __MCONSOLE_H__
  9.  
  10. #ifndef __KERNEL__
  11. #include <stdint.h>
  12. #define u32 uint32_t
  13. #endif
  14.  
  15. #include "sysdep/ptrace.h"
  16.  
  17. #define MCONSOLE_MAGIC (0xcafebabe)
  18. #define MCONSOLE_MAX_DATA (512)
  19. #define MCONSOLE_VERSION 2
  20.  
  21. struct mconsole_request {
  22.     u32 magic;
  23.     u32 version;
  24.     u32 len;
  25.     char data[MCONSOLE_MAX_DATA];
  26. };
  27.  
  28. struct mconsole_reply {
  29.     u32 err;
  30.     u32 more;
  31.     u32 len;
  32.     char data[MCONSOLE_MAX_DATA];
  33. };
  34.  
  35. struct mconsole_notify {
  36.     u32 magic;
  37.     u32 version;
  38.     enum { MCONSOLE_SOCKET, MCONSOLE_PANIC, MCONSOLE_HANG,
  39.            MCONSOLE_USER_NOTIFY } type;
  40.     u32 len;
  41.     char data[MCONSOLE_MAX_DATA];
  42. };
  43.  
  44. struct mc_request;
  45.  
  46. enum mc_context { MCONSOLE_INTR, MCONSOLE_PROC };
  47.  
  48. struct mconsole_command
  49. {
  50.     char *command;
  51.     void (*handler)(struct mc_request *req);
  52.     enum mc_context context;
  53. };
  54.  
  55. struct mc_request
  56. {
  57.     int len;
  58.     int as_interrupt;
  59.  
  60.     int originating_fd;
  61.     unsigned int originlen;
  62.     unsigned char origin[128];            /* sockaddr_un */
  63.  
  64.     struct mconsole_request request;
  65.     struct mconsole_command *cmd;
  66.     struct uml_pt_regs regs;
  67. };
  68.  
  69. extern char mconsole_socket_name[];
  70.  
  71. extern int mconsole_unlink_socket(void);
  72. extern int mconsole_reply_len(struct mc_request *req, const char *reply,
  73.                   int len, int err, int more);
  74. extern int mconsole_reply(struct mc_request *req, const char *str, int err,
  75.               int more);
  76.  
  77. extern void mconsole_version(struct mc_request *req);
  78. extern void mconsole_help(struct mc_request *req);
  79. extern void mconsole_halt(struct mc_request *req);
  80. extern void mconsole_reboot(struct mc_request *req);
  81. extern void mconsole_config(struct mc_request *req);
  82. extern void mconsole_remove(struct mc_request *req);
  83. extern void mconsole_sysrq(struct mc_request *req);
  84. extern void mconsole_cad(struct mc_request *req);
  85. extern void mconsole_stop(struct mc_request *req);
  86. extern void mconsole_go(struct mc_request *req);
  87. extern void mconsole_log(struct mc_request *req);
  88. extern void mconsole_proc(struct mc_request *req);
  89. extern void mconsole_stack(struct mc_request *req);
  90.  
  91. extern int mconsole_get_request(int fd, struct mc_request *req);
  92. extern int mconsole_notify(char *sock_name, int type, const void *data,
  93.                int len);
  94. extern char *mconsole_notify_socket(void);
  95. extern void lock_notify(void);
  96. extern void unlock_notify(void);
  97.  
  98. #endif
  99.